from flask import Blueprint, jsonify, request, session
from user_config import UserConfig
import json

# 创建配置API蓝图
blueprint = Blueprint('config_api', __name__, url_prefix='/api/config')

@blueprint.route('/site-config', methods=['GET'])
def get_site_config():
    """
    获取站点配置信息
    这个API将返回站点配置信息，替代原来硬编码在login.py中的配置
    """
    try:
        # 从session中获取用户名
        username = session.get('username')
        if not username:
            return jsonify({
                'code': 401,
                'msg': '未登录'
            }), 401
        
        # 获取用户配置
        user_config = UserConfig.get_user_config(username)
        
        # 返回配置信息
        config_data = {
            'bt_url': user_config.get('bt_url'),
            'bt_key': user_config.get('bt_key'),
            'bt_fife': user_config.get('bt_fife'),
            'bt_web': user_config.get('bt_web'),
            'web_size': user_config.get('web_size'),
            'sql_size': user_config.get('sql_size'),
            'traffic_size': user_config.get('traffic_size'),
            'siteId': user_config.get('siteId'),
            'sql_pwd': user_config.get('sql_pwd')
        }
        
        return jsonify({
            'code': 200,
            'msg': '获取配置成功',
            'data': config_data
        })
        
    except Exception as e:
        return jsonify({
            'code': 500,
            'msg': f'获取配置失败: {str(e)}'
        }), 500

@blueprint.route('/site-config', methods=['POST'])
def update_site_config():
    """
    更新站点配置信息
    """
    try:
        # 从session中获取用户名
        username = session.get('username')
        if not username:
            return jsonify({
                'code': 401,
                'msg': '未登录'
            }), 401
        
        # 获取请求数据
        data = request.get_json()
        
        # 这里可以添加配置更新逻辑
        # 为了简化示例，我们只是返回接收到的数据
        # 在实际应用中，这里应该更新数据库或配置文件
        
        return jsonify({
            'code': 200,
            'msg': '配置更新成功',
            'data': data
        })
        
    except Exception as e:
        return jsonify({
            'code': 500,
            'msg': f'更新配置失败: {str(e)}'
        }), 500